
 ///Contains the replication file and dataset for::

***“Deservingness” and Public Support for Universal Public Goods: A Survey Experiment
*** Thomas Gift (University College London) and Carlos X. Lastra-Anadón (IE University)
****Public Opinion Quarterly

***This version: August 16, 2022
***For any questions contact clastra@faculty.ie.edu


 
 
 
 ///Load Raw data
 
 ///set home directory
 // cd "..."
 use  "20220817 GiftLastraDeservingness.dta"
 
 
 
 *******
 ***Preparation (no need to run this, just reference of how variables are created)
   
 *Coding NHS treatments
 //Control vs deserving and underserving
 gen deserving=0
 replace deserving=1 if qcellq2==4 | qcellq2==5 | qcellq2==6
 
 gen undeserving=0
 replace undeserving=1 if qcellq2==7 | qcellq2==8 | qcellq2==9
 
 
 gen unemployeduser=0
 replace unemployeduser=1 if qcellq2==4 | qcellq2==5 | qcellq2==6 | qcellq2==7 | qcellq2==8 | qcellq2==9
 
  gen controldeserving=0
 replace controldeserving=1 if qcellq2==1 | qcellq2==2 | qcellq2==3
 
gen noncontroldeserving=1 if controldeserving==0
replace noncontroldeserving=0 if controldeserving==1


  //Typology of illness
 gen benign=0 
replace benign=1 if qcellq2==1 | qcellq2==4 | qcellq2==7

 gen serious=0 
replace serious=1 if qcellq2==2 | qcellq2==5 | qcellq2==8


gen emergency=0 
replace emergency=1 if qcellq2==3 | qcellq2==6 | qcellq2==9

gen seriousoremergency=0
replace seriousoremergency=1 if qcellq2==2 | qcellq2==5 | qcellq2==8 | qcellq2==3 | qcellq2==6 | qcellq2==9


 
 *Code NHS spending outcomes
   gen moreNHSspending=5 if q19==1
  replace moreNHSspending=4 if q19==2
  replace moreNHSspending=3 if q19==3
  replace moreNHSspending=2 if q19==4
  replace moreNHSspending=1 if q19==5
  
  gen forNHSspending=1 if q19==1
 replace forNHSspending=1 if q19==2
 replace forNHSspending=0 if q19>2 
 
  gen supportlevelNHSspending=5 if q19==1
 replace supportlevelNHSspending=4 if q19==2
 replace supportlevelNHSspending=3 if q19==3
 replace supportlevelNHSspending=2 if q19==4
 replace supportlevelNHSspending=1 if q19==5
 
 

   gen moreoreqNHSspending=1 if q19==1
 replace moreoreqNHSspending=1 if q19==2
 replace moreoreqNHSspending=1 if q19==3
 replace moreoreqNHSspending=0 if q19>3 
 
 gen againstNHSspending=1 if q19>3
 replace againstNHSspending=0 if q19<=3
 
 
 
 gen someuserpayNHS=1 if q20==1 | q20==2
 replace someuserpayNHS=0 if q20>2
 
 gen  everyonepayNHS=1 if q20==1 
 replace  everyonepayNHS=0 if q20>1 
 
 gen  somecapNHS=1 if q21==1 | q21==2
 replace  somecapNHS=0 if q21>2
 
 gen  prioritizeNHS=1 if q22==1 
 replace  prioritizeNHS=0 if q22==2
 
 
 gen againstlevelNHSspending=q19
 
 

 
 *******
 ***Analyses
 
 
 ****Main Tables
 
      ************************
	**********Table 2 Support for increased spending on the NHS, by user contribut
	************************
global outcvariablesNHS forNHSspending someuserpayNHS somecapNHS
 global indivcontrols female age children white bornuk somecollege unemployed incometsd incomeimp
	
	eststo clear
reg forNHSspending unemployeduser, r
eststo reg1
*reg forNHSspending deserving undeserving, r
*eststo reg2
reg forNHSspending  undeserving controldeserving, r
eststo reg3

ologit supportlevelNHSspending unemployeduser, r
eststo reg1o

ologit supportlevelNHSspending  undeserving controldeserving, r
eststo reg3o

esttab reg1 reg1o reg3   reg3o using "tablemain.tex", drop( )  p r2 l  star(* 0.10 ** 0.05 *** 0.01 ) append

     ************************
	**********Table 3: Support for increased spending on the NHS, by user contribution, “motivation”, and need
	************************
eststo clear
	global outcvariablesNHS forNHSspending someuserpayNHS somecapNHS
 global indivcontrols female age children white bornuk somecollege unemployed incometsd incomeimp
	
reg forNHSspending i.unemployeduser##i.serious i.unemployeduser##i.emergency, r
eststo reg2

reg forNHSspending i.undeserving##i.serious i.undeserving##i.emergency i.controldeserving##i.serious  i.controldeserving##i.emergency , r
eststo reg4

ologit supportlevelNHSspending i.unemployeduser##i.serious i.unemployeduser##i.emergency, r
eststo reg3

ologit supportlevelNHSspending i.undeserving##i.serious i.undeserving##i.emergency i.controldeserving##i.serious  i.controldeserving##i.emergency , r
eststo reg5

esttab reg2  reg3 reg4  reg5  using "tableseriousoremergency3.tex", drop( )  p r2 l  star(* 0.10 ** 0.05 *** 0.01 ) append


   ****Figures
   
     // Figure A1: Likelihood of supporting “more” or “much more” spending on the NHS, comparing control group with non-contributors (both “motivated” and “unmotivated” treatments combined)
	 reg forNHSspending unemployeduser, r
     margins, over( unemployeduser) post
	 matrix list e(b)
  
    coefplot,  recast(bar) ///
	vertical  graphregion(color(white)) ytitle("Probability of supporting more" "government spending on the NHS")   title(" ")   barwidth(0.5)  fcolor(*.5)   ciopts(recast(rcap)) citop ysc(r(  0 1))  level(90) ylabel(0 (.1) 1, nogrid)  ///
  xlabel(1 "Control" 2  "Non-contributor" ) title(" ") ///
    
   
     //Figure A2 Likelihood of supporting “more” or “much more” spending on the NHS, comparing control group with “motivated” and “unmotivated” non-contributors
reg forNHSspending undeserving controldeserving,r
     margins, over( undeserving controldeserving ) post
	 matrix list e(b)
  
    coefplot,  recast(bar) order( 0.undeserving#1.controldeserving    0.undeserving#0.controldeserving 1.undeserving#0.controldeserving) ///
	vertical  graphregion(color(white)) ytitle("Probability of supporting more" "government spending on the NHS")   title(" ")   barwidth(0.5)  fcolor(*.5)   ciopts(recast(rcap)) citop ysc(r(  0 1))  level(90) ylabel(0 (.1) 1, nogrid)  ///
  xlabel(1 "Control" 2 `" "Motivated" "Non-contributor" "' 3 `" "Unmotivated"  "Non-contributor" "' ) title(" ") ///
   
    graph save "motivated.png", replace



 
  //Figure  A3: Likelihood of supporting “more” or “much more” spending on the NHS, by treatment and need
 
 reg forNHSspending i.undeserving##i.emergency i.undeserving##i.serious i.deserving##i.emergency i.deserving##i.serious   , r
     margins, over(undeserving deserving emergency serious ) post
 
 
    coefplot,  recast(bar) ///
  vertical  graphregion(color(white)) ytitle("Probability of supporting more" "government spending on the NHS")   title(" ")   barwidth(0.5)  fcolor(*.5)   ciopts(recast(rcap)) citop ysc(r(  0 1)) xline(3.5) xline(6.5)  level(90) ylabel(0 (.1) 1, nogrid)  ///
 xlabel(1 `" "Control X" "Benign" "' 2 `" "Control X" "Serious" "' 3 `" "Control X" "Emergency" "' 4 `" "Motivated NC X" "Benign" "' 5 `" "Motivated NC X" "Serious" "' 6 `" "Motivated NC X" "Emergency" "'  7 `" "Unmotivated NC X" "Benign" "' 8 `" "Unmotivated NC X" "Serious" "'9 `" "Unmotivated NC X" " Emergency" "', labsize(vsmall) angle(vertical) )   title(" ")
 
 graph save "supportmorespending.png", replace
 
 

 
 //Figure A4: Likelihood of supporting “less” or “much less” spending on the NHS, by treatment and need

 reg againstNHSspending i.undeserving##i.emergency i.undeserving##i.serious i.deserving##i.emergency i.deserving##i.serious   , r
     margins, over(undeserving deserving emergency serious ) post
 
 
    coefplot,  recast(bar) ///
  vertical  graphregion(color(white)) ytitle("Probability of supporting less" "government spending on the NHS")   title(" ")   barwidth(0.5)  fcolor(*.5)   ciopts(recast(rcap)) citop ysc(r(  0 .1)) xline(3.5) xline(6.5)  level(90) ylabel(0 (.05) .1, nogrid)  ///
 xlabel(1 `" "Control X" "Benign" "' 2 `" "Control X" "Serious" "' 3 `" "Control X" "Emergency" "' 4 `" "Motivated NC X" "Benign" "' 5 `" "Motivated NC X" "Serious" "' 6 `" "Motivated NC X" "Emergency" "'  7 `" "Unmotivated NC X" "Benign" "' 8 `" "Unmotivated NC X" "Serious" "'9 `" "Unmotivated NC X" " Emergency" "', labsize(vsmall) angle(vertical) )   title(" ")
 
graph save "supportlessspending.png"
 
 
 
 //Figure A5: Likelihood of supporting “more” or “much more” spending on the NHS, by treatment and ideology


reg forNHSspending  noncontroldeserving##i.rightincmoderate i.undeserving##i.rightincmoderate, r

 margins, over(rightincmoderate   noncontroldeserving undeserving) post


 
   coefplot,  recast(bar)   vertical  graphregion(color(white)) ytitle("Probability of supporting more" "government spending on the NHS")   title(" ")   barwidth(0.5)  fcolor(*.5)   ciopts(recast(rcap)) citop ysc(r(  0  1)) xline(3.5) level(90) ylabel(0 (.1) 1, nogrid)  ///
 xlabel(1 `"  "Control X" "Left" "' 2 `"  "Motivated NC X" "Left" "' 3 `"  "Unmotivated NC X" "Left" "' 4 `" "Control X" "Right" "' 5 `" "Motivated NC X" "Right" "'   6 `" "Unmotivated NC X" "Right" "'  , labsize(vsmall) )   title(" ")
 
 
 
 ///Appendix Tables
 
 
 ************************	
**Appendix Table B1:  Comparison with U.K. national figures and balance of the covariates across the different treatment groups 
**********


//Excludes UK averages, as taken from ONS documents (see note to Table in text)
	balancetable (mean) (mean if controldeserving==1)   (mean if deserving==1)   (diff deserving if (undeserving!=1 ) )  (mean if undeserving==1)  (diff undeserving if (deserving!=1 ) ) /// ///
  female age children white bornuk collegegraduate unemployed incometsd using "balancetable11.tex", starlevels(+ 0.10 * 0.05 ** 0.01 *** 0.001) replace pvalues
 
 
    ************************
	//Appendix Table B2: Support for increased spending on the NHS, by user contribution and “motivation”, including individual covariates
	************************
 global indivcontrols female age children white bornuk somecollege unemployed incometsd incomeimp
	
	eststo clear
	reg forNHSspending unemployeduser  $indivcontrols, r
eststo reg1
	ologit supportlevelNHSspending unemployeduser  $indivcontrols, r
eststo reg1ol
	reg moreNHSspending  undeserving controldeserving $indivcontrols, r
eststo reg3
	ologit supportlevelNHSspending  undeserving controldeserving $indivcontrols, r
eststo reg3ol

esttab reg1 reg1ol  reg3 reg3ol using "tablea2controls.tex", drop( )  p r2 l  star(* 0.10 ** 0.05 *** 0.01 ) replace

 
 
 
  
 ************************
 ///Appendix Table B3: Support for increased spending on the NHS, by user contribution, “motivation”, and need (OLS models using 1-5 Likert scale)
 ************************
 
 eststo clear
 reg supportlevelNHSspending unemployeduser, r
eststo forsupport1

reg supportlevelNHSspending  undeserving controldeserving, r
eststo forsupport2

reg supportlevelNHSspending i.unemployeduser##i.serious i.unemployeduser##i.emergency, r
eststo forsupport3
 
 reg supportlevelNHSspending i.undeserving##i.serious i.undeserving##i.emergency i.controldeserving##i.serious  i.controldeserving##i.emergency , r
eststo forsupport4
  
 esttab forsupport1  forsupport2 forsupport3 forsupport4  using "tablesfulllikertscale2.tex", drop( )  p r2 l  star(* 0.10 ** 0.05 *** 0.01 ) append

  ************************
 ///Appendix Table B4: Support for “less” or “much less” spending on the NHS, by user contribution and “motivation”
 ************************
 
 
	eststo clear
reg againstNHSspending unemployeduser, r
eststo reg1

reg againstNHSspending  undeserving controldeserving, r
eststo reg2

ologit againstlevelNHSspending unemployeduser, r
eststo reg1o

ologit againstlevelNHSspending  undeserving controldeserving, r
eststo reg2o

 esttab reg1 reg1o  reg2 reg2o  using "tablesagainst.tex", drop( )  p r2 l  star(* 0.10 ** 0.05 *** 0.01 ) append

 
 
 
 
    ************************
	**********Appendix Table B5:  Support for rationing NHS services
	************************
eststo clear
	
	reg someuserpayNHS unemployeduser, r
eststo reg1a
reg someuserpayNHS controldeserving undeserving, r
eststo reg2a

	reg somecapNHS unemployeduser, r
eststo reg1b
reg somecapNHS controldeserving undeserving, r
eststo reg2b

	reg prioritizeNHS unemployeduser, r
eststo reg1c
reg prioritizeNHS controldeserving undeserving, r
eststo reg2c


esttab reg1a reg2a reg1b reg2b reg1c reg2c using "tableb3.tex", drop( )  p r2 l  star(* 0.10 ** 0.05 *** 0.01) replace
 

 
    ************************
	**********Appendix Table B6:  Support for “less” or “much less” spending on the NHS, by user contribution, “motivation”, and need
	************************
 eststo clear
 
reg againstNHSspending i.unemployeduser##i.serious i.unemployeduser##i.emergency, r
eststo reg1

ologit againstlevelNHSspending i.unemployeduser##i.serious i.unemployeduser##i.emergency, r
eststo reg1o
 
 reg againstNHSspending i.undeserving##i.serious i.undeserving##i.emergency i.controldeserving##i.serious  i.controldeserving##i.emergency , r
 eststo reg2

  ologit againstlevelNHSspending i.undeserving##i.serious i.undeserving##i.emergency i.controldeserving##i.serious  i.controldeserving##i.emergency , r
 eststo reg2o
 
 esttab reg1 reg1o  reg2 reg2o  using "tablesagainstseriousemergency.tex", drop( )  p r2 l  star(* 0.10 ** 0.05 *** 0.01 ) append
 
 
 
 	
		
		
	

  
